The present invention relates to electrically configurable integrated circuits and, more particularly, to a system for programming such devices. A major objective of the present invention is to provide for faster reconfiguration in a system with multiple electrically configurable integrated circuits.
Much of modern progress is associated with the increasing functionality and speed of integrated circuits. When produced in large quantities, integrated circuits are sufficiently inexpensive that computers, instruments, and consumer products incorporating them are within the reach of everyone. However, very high start-up costs, including research, manufacturing facilities, design, processing, and testing, can be prohibitive for small volume applications. Low volume runs are important, not only for certain specialized applications, but as intermediate steps in the development of integrated circuits eventually destined for large volume production.
Various "application-specific integrated circuit" (ASIC) technologies have addressed the problem of start-up costs. However, because they involve reliance on further manufacturing to realize a design, start-up costs are higher than desired for many applications.
Where the desired functionality can be achieved, electrically programmable devices afford a very attractive approach to small volume integrated circuit manufacturing. The functionality of programmable devices is determined after they are manufactured, typically by selecting binary values to be stored in included memory cells. Programmable devices include both memory devices, e.g., programmable read-only memories (PROMs) and logic devices, e.g., programmable logic arrays (PLAs).
Programmable device designs can be updated or improved and then implemented by a device replacement. Erasable programmable devices, herein referred to as "configurable devices" permit updates by erasing the old and programming the new without changing the integrated circuit. While many erasable devices rely on exposure to ultra-violet radiation for erasure, others can be electrically erased in circuit. The advantages of electrically configurable devices (ECDs), alternatively referred to as "electrically configurable integrated circuits", during iterative design stages is clear. Circuits can be updated readily using the same basic types of electrical components used during system operation.
A simple ECD system includes a PROM that stores configuration data while the system is off and an ECD, the configuration of which determines system operation when it is on. Upon start up, data is transmitted from the PROM to the ECD so that when booting is complete, the system is configured as desired.
Where the desired configuration exceeds the capacity of a single ECD, plural ECDs can be daisy chained for serial configuration using a single stream of configuration data. Serial configuration is described in The Programmable Logic Data Book, 1994, Xilinx, Inc., pp. 2-25 to 2-46. Typically, a serial bitstream is loaded into a first ECD which stores configuration data up to its capacity and then passes the remaining configuration data to the next ECD in the series. This serial configuration proceeds until all the configuration data is stored.
Furthermore, the number of configurable circuits can be minimized by arranging for reconfiguration during different modes of operation for the incorporating system. For example, electrically configurable devices can be configured in a first manner as an incorporating system is booting up and then configured for subsequent post-boot operations. More generally, mode switches for a system incorporating ECDs can be effected through their reconfiguration.
In many cases, configuration data must be changed only for a subset of the ECDs. However, serial configuration typically requires that all ECDs be reconfigured together. Reconfiguration of an entire set of ECDs can be unacceptably slow. While parallel programming of ECDs would provide for faster reprogramming, the additional complexity of generating parallel but distinct configuration data streams is undesirable. What is needed is a system that provides for faster ECD reconfiguration using a single configuration data stream.